#ifndef _YEP_ENGINE_EVENT_HPP
#define _YEP_ENGINE_EVENT_HPP

#include "../common.hpp"
#include "../math/Vector2.hpp"
namespace yep
{
class Game;//Foward declaration
class Scene2d;// Foward declaration
class Screen;// Foward declaration

/**
 * @brief A event fired by a Scene2d.
 *
 * All events are from this type or subclass. A subclass could
 *  be needed to add extra-information.
 **/
class Event
{
public:
    /**
     * @brief Constructor
     **/
    Event( Game &game_, Scene2d &scene_ ):
        game(game_), scene(scene_){}

    /**
     * @brief Destructor
     **/
    virtual ~Event(){}

    /**
     * @brief Returns the game
     **/
    Game &getGame( void ) const {
        return game;
    }

    /**
     * @brief Returns the scene
     **/
    Scene2d &getScene( void ) const {
        return scene;
    }

private:
    Game &game;
    Scene2d &scene;
};

}

#endif // _YEP_ENGINE_EVENT_HPP

